import java.util.Arrays;

public class Main {
    /**
     * 有序数组的平方
     * https://leetcode.cn/problems/squares-of-a-sorted-array/
     * 给你一个按 非递减顺序 排序的整数数组 nums，返回 每个数字的平方 组成的新数组，要求也按 非递减顺序 排序。
     */
    public static void main(String[] args) {
        int [] nums = new int[]{-4,-1,0,3,10};
        int[] answer = new Main().sortedSquares(nums);
        System.out.println(Arrays.toString(answer));
    }
    public int[] sortedSquares(int[] nums) {
        int left = 0, right = nums.length - 1, index = nums.length - 1;
        int[] result = new int[nums.length];
        while (left <= right) {
            if (nums[left] * nums[left] > nums[right] * nums[right]) {
                result[index--] = nums[left] * nums[left];
                left++;
            } else {
                result[index--] = nums[right] * nums[right];
                right--;
            }
        }
        return result;
    }
}
